import os


def copy_files(src, target):
    '''
    复制文件夹
    :param src:     源目录
    :param target:  目标目录
    :return:
    '''
    # 判断源目录是否存在
    if os.path.exists(src) and os.path.isdir(src):
        # 如果目标目录不存在，则创建
        if not os.path.exists(target):
            os.makedirs(target)

        file_list = os.listdir(src)
        for file in file_list:
            path = os.path.join(src, file)
            dest_path = os.path.join(target, file)
            if os.path.isdir(path):
                # 如果是子目录，则递归复制
                copy_files(path, dest_path)
            else:
                # 如果是文件就复制
                with open(path, 'rb') as rstream:
                    content = rstream.read()
                    with open(dest_path, 'wb') as wstream:
                        wstream.write(content)


copy_files('d:/download', 'i:/test')
